package 剑指offer.Month7_07.day16;

import java.util.HashMap;
import java.util.LinkedList;
import java.util.Queue;

public class 第一个只出现一次的字符 {
    public int FirstNotRepeatingChar(String str) {
        HashMap<Character,Integer> map = new HashMap<>();
        Queue<Character> q1 = new LinkedList<>();//保存字符
        Queue<Integer> q2 = new LinkedList<>();//保存字符下标
        for (int i = 0; i < str.length(); i++) {
            char key = str.charAt(i);
            if(!map.containsKey(key)){
                map.put(key,i);
                q1.offer(key);
                q2.offer(i);
            }else{
                map.put(key,-1);
                while(!q1.isEmpty() && map.get(q1.peek()) == -1){
                    q1.poll();
                    q2.poll();
                }
            }
        }
        return q2.isEmpty() ? -1 : q2.poll();
    }
}
